package com.wine.exam.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wine.exam.domain.Paper;
import com.wine.exam.domain.Question;
import com.wine.exam.dto.PaperDto;

import java.util.List;
import java.util.Map;


/**
 * 试卷Service接口
 *
 * @author wine
 * @date 2022-10-13
 */

public interface IPaperService extends IService<Paper> {

    /**
     * 根据试卷id 删除试卷和 属于这个试卷的题目（关联表里的）
     *
     * @param paperId
     * @return
     */

    int delById(Long paperId);

    /**
     * 根据试卷名称，学科，开始，结束时间 可选查询 试卷
     *
     * @param paperDto
     * @return
     */
    Page<Paper> pageQueryList(PaperDto paperDto);


    /**
     * 获取试卷 根据paperId
     *
     * @param paperId
     */
    Paper getPaper(Long paperId);

    /**
     * 获取试卷单表详情 根据paperId  无答案
     *
     * @param paperId
     * @param hasCorrect true  ： 有答案， false 无答案
     */
    Map<String, Object> getInfo(Long paperId, Boolean hasCorrect);


    /**
     * 根据paper 获取 到 属于这张试卷的题目， 无答案
     *
     * @param hasCorrect true  ： 有答案， false 无答案
     */
    List<Question> getQuestionsByPaper(Paper paper, Boolean hasCorrect);



    /**
     * 修改试卷状态
     *
     * @param paperId 试卷主键
     * @param status  状态码
     * @return
     */
    int updateStatus(Long paperId, String status);
}
